﻿# -*- coding: utf-8 -*-

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Effectue tout le prétraitement nécessaire aux phrases afin de 
" permettre le bon fonctionnement de l'analyseur. 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
class PreProcesseur:
    
    """""""""""""""""""""""""""""""""""""""""""""""""""
    " Converti le texte passé en paramètre en une série 
    " de phrases et effectue un pré-traitement initial.
    """""""""""""""""""""""""""""""""""""""""""""""""""
    def __init__(self, in_texte):
        self.texteInitial = in_texte
        # convertir toutes les majuscules en minuscules
        self.texte = in_texte.lower()
        self.texte = self.texte.rstrip("\n")
        # séparer le texte par phrase (séparés par des .)
        self.phrases = self.texte.split(".")
        
        # retirer l'élément vide causé par le dernier . du texte et le split
        if self.phrases.__contains__(''):
            self.phrases.remove('')
    
    """""""""""""""""""""""""""""""""""""""""""""""""""
    " Retire les espaces en début ou fin de phrase.
    """""""""""""""""""""""""""""""""""""""""""""""""""
    def strip(self):
        for i in range(0, len(self.phrases)):
            self.phrases[i] = self.phrases[i].strip()
    
    """""""""""""""""""""""""""""""""""""""""""""""""""
    " Retire la ponctuation invalide:
    "   - remplace les ' par des espaces.
    """""""""""""""""""""""""""""""""""""""""""""""""""
    def retirerPonctuation(self):
        for i in range(0, len(self.phrases)):
            self.phrases[i] = self.phrases[i].replace('\'', ' ')
            self.phrases[i] = self.phrases[i].replace('’', ' ')
            self.phrases[i] = self.phrases[i].replace('de plus, ', '')
            self.phrases[i] = self.phrases[i].replace('De plus ', '')
            #self.phrases[i] = self.phrases[i].replace('-', '')
    
    """""""""""""""""""""""""""""""""""""""""""""""""""
    " Getters / setters / fonctions affichage.
    """""""""""""""""""""""""""""""""""""""""""""""""""
    def getTexteInitial(self):
        return self.texte
    
    def getPhrases(self):
        return self.phrases
    
    def afficherPhrases(self):
        print self.phrases